package com.itheima.d9_interface_attention;
/*
    接口其他注意事项（了解）
        1、一个接口继承多个接口，如果多个接口中存在方法签名冲突，则此时不支持多继承。
        2、一个类实现多个接口，如果多个接口中存在方法签名冲突，则此时不支持多实现。
        3、一个类继承了父类，又同时实现了接口，父类中和接口中有同名的默认方法，实现类会优先用父类的。
        4、一个类实现了多个接口，多个接口中存在同名的默认方法，可以不冲突，这个类重写该方法即可。
 */
public class Test2 {
    public static void main(String[] args) {
        G g = new G();
        g.test3();
        H h = new H();
        h.MoRen();
    }
}

interface A{
    default void MoRen(){
        System.out.println("A接口默认方法");
    }

}
interface B{
    default void MoRen(){
        System.out.println("B接口默认方法");
    }
}

class D implements A,B{


    @Override
    public void MoRen() {
        A.super.MoRen();
    }
//一个类实现多个接口，如果多个接口存在方法签名冲突，此时不支持多实现

}
class E{
    public void test3(){
        System.out.println("父类");
    }
}
interface F{
    default void test3(){
        System.out.println("默认方法");
    }
}
class G extends E implements F{
//一个类继承了父类，同时实现了接口，如果父类方法与接口默认方法重名，则有限调用父类方法
}
//一个类实现了多个接口，多个接口中存在同名的默认方法，可以不冲突，这个类重写该方法即可。
class H implements A,B{
//一个类，实现了多个接口，如果多个接口中有同名默认方法，可以不冲突，在实现类中重写该方法
    @Override
    public void MoRen() {
        B.super.MoRen();
    }
}











